package com.imagecollector.service;

import com.imagecollector.common.R;
import com.imagecollector.domain.dto.UserDTO;
import com.imagecollector.domain.dto.UserEditDTO;
import com.imagecollector.domain.dto.UserSearchDTO;
import com.imagecollector.domain.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.imagecollector.domain.vo.CaptchaVo;
import com.imagecollector.domain.vo.LoginVo;
import com.imagecollector.domain.vo.WXLoginVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wrf
 * @since 2024-07-31
 */
public interface IUserService extends IService<User> {

    R saveOne(UserDTO userDTO);
    /**
     * 更新用户状态
     *
     * @param id  用户编号
     * @param status  用户状态
     */
    R updateStatus(Integer id, Integer status);

    User login(String code);

    CaptchaVo getCaptcha();

    WXLoginVO loginAdmin(LoginVo loginVo);

    void saveOrUpdateUser(UserEditDTO userEditDTO);

    /**
     * 修改密码
     * @param phone 手机号
     * @param oldPassword 旧密码
     * @param password 新密码
     * @return
     */
    R updatePassword(Integer phone, String oldPassword, String password);
    /**
     * 根据分页查询用户信息
     *
     * @param requestParam 用户搜索参数对象，包含查询条件和分页信息
     * @return 返回一个分页对象，包含符合条件的用户信息列表和总记录数等信息
     */
    R pageQueryUsers(UserSearchDTO requestParam);


}
